`timescale 1ns / 1ps
//////////////////////////////////////////////////////////////////////////////////
// Company: 
// Engineer: 
// 
// Create Date: 2015/09/28 15:58:09
// Design Name: 
// Module Name: Rom
// Project Name: 
// Target Devices: 
// Tool Versions: 
// Description: 
// 
// Dependencies: 
// 
// Revision:
// Revision 0.01 - File Created
// Additional Comments:
// 
//////////////////////////////////////////////////////////////////////////////////


module Rom(
    // input [9:0] num1,
    // input clk,
    // input reset,
    // input ena,
    // output [6:0] seg,
    // output [7:0] ans
    // );
    // wire [31:0] InsData;
   
    // blk_mem_gen_0 rom (
    //   .clka(clk),    // input wire clka   
    //   .ena(ena), 
    //   .addra(num1),  // input wire [9 : 0] addra
    //   .douta(InsData[31:0])  // output wire [31 : 0] douta
    // );
    // display display_0(.clk(clk),.reset(reset),.s(InsData),.ans(ans),.seg(seg));
    output [6:0] seg,
    output [7:0] ans,
    input clk,ena,reset,
    input wire [9:0] num1 ,
    output wire jump,regwrite,regdst,alusrc,branch,memwrite,memetoreg,
    output wire[2:0] alucontrol
);
wire[31:0] instr;

controller controller(
    .instr(instr),
    .jump(jump),
    .regwrite(regwrite),
    .regdst(regdst),    
    .alusrc(alusrc),
    .branch(branch),
    .memwrite(memwrite),
    .memetoreg(memetoreg),    
    .alucontrol(alucontrol)
);
 blk_mem_gen_0 rom (
      .clka(clk),    // input wire clka   
      .ena(ena), 
      .addra(num1),  // input wire [9 : 0] addra
      .douta(instr)  // output wire [31 : 0] douta
    );
  
    display display_0(.clk(clk),.reset(reset),.s(instr),.ans(ans),.seg(seg ));
endmodule
